﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Negocios
{
    class AluguelVeiculoBO
    {
        private int id;
        private ClienteBO cliente;
        private LocadoraBO locadora;
        private DateTime dataInicio;
        private DateTime dataFim;
        private UsuarioBO usuario;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public ClienteBO Cliente
        {
            get { return cliente; }
            set {
                if (value == null)
                {
                    throw new BOException("O Cliente deve ser informado.");
                }
                if (new ClienteBOMetodos().Consulta(value.Cpf) == null)
                {
                    throw new BOException("Cliente informado não existe.");
                } 
                cliente = value; 
            } 
        }

        public LocadoraBO Locadora
        {
            get { return locadora; }
            set
            {
                if ((new LocadoraBOMetodos()).consultar(value.Id) == null)
                {
                    throw new BOException("A Locadora informada não existe.");
                }
                locadora = value;
            }
        }
        public DateTime DataInicio
        {
            get { return dataInicio; }
            set {
                if (value == null)
                {
                    throw new BOException("A Data de Inicio deve ser informado.");
                } 
                dataInicio = value;
            }
        }

        public DateTime DataFim
        {
            get { return dataFim; }
            set {
                if (value == null)
                {
                    throw new BOException("A Data Final deve ser informado.");
                } 
                dataFim = value;
            }
        }

        public UsuarioBO Usuario
        {
            get { return usuario; }
            set {
                if (value == null)
                {
                    throw new BOException("O Usuario deve ser informado.");
                }
                if ((new UsuarioBOMetodos()).Consulta(value.Login) == null)
                {
                    throw new BOException("Usuario informado não existe.");
                }
                usuario = value;
            }
        }
    }
}
